import { ref } from 'vue'
import { defineStore } from 'pinia'

// 使用setup模式定义（推荐）（正常情况下：变量是保存的数据；没有return的函数是actions；有return的函数是getters）
export default defineStore(
  'piniaDemo1',
  () => {
    const count = ref<number>(1)
    const name = ref<string>('zs')
    const age = ref<number>(12)

    function COUNT_ADD() {
      count.value++
      name.value += '-'
      age.value++
    }

    function CUONT_DOUBLE() {
      count.value *= 2
    }

    function COUNT_GETTERS() {
      return count.value + 900
    }

    return { count, name, age, COUNT_ADD, CUONT_DOUBLE, COUNT_GETTERS }
  },
  {
    persist: {
      enabled: true, // 开启数据缓存
      // 你可以在strategies里将存放位置由 sessionStorage 改为 localStorage；也可指定paths存储哪些数据
      // strategies默认会将所有变量存储在sessionStorage中，所以一般情况下可不用设置！
      strategies: [
        {
          storage: localStorage,
          paths: ['name', 'age']
        },
        {
          storage: sessionStorage,
          paths: ['count']
        }
      ]
    }
  }
)
